package com.qili.mapper.supervisor;

import com.qili.base.mapper.BaseMapper;
import com.qili.entity.supervisor.SupervisorProject;
import com.qili.entity.supervisor.dto.SupervisorProjectDTO;
import com.qili.util.ReType;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SupervisorProjectMapper  extends BaseMapper<SupervisorProject,String> {


    /**
     * @param ids
     * @param status
     * @Date:20:32 2020-12-11
     */
    int  updateByPrimaryKeyIds(@Param("ids") String[] ids, @Param("status") String  status);

    /**
     * @Author:zhaoyongke
     * @Description: 查询项目
    * @param dto
     * @Date:15:47 2020/11/26
     */
    List<SupervisorProjectDTO> selectSupervisorProject(SupervisorProjectDTO dto);

    List<SupervisorProjectDTO> selectSupervisorProjectOrder(SupervisorProjectDTO dto);



    /**
     * @Author:zhaoyongke
     * @Description: 监理统计台账
    * @param dto
     * @Date:13:30 2021/5/11
     */
    List<SupervisorProjectDTO> selectSupervisorJlTjProject(SupervisorProjectDTO dto);


    /**
     * @Author:Zhangshuo
     * @Description:删除回收站项目
    * @param ids
     * @Date:20:33 2020-12-11
     */
    int deleteProjectsFromRecycle(String[] ids);

    List<SupervisorProjectDTO> selectProList(String[] stas);

    /**
     * 智能检索查询签单
     * @param map
     * @return
     */
    int selectSigning(Map map);
    /**
     * 智能检索查询项目
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectSupervisorList(Map map);
    // 产品分析
    List<SupervisorProjectDTO>  selectCpFx(SupervisorProjectDTO dto);
    // 产品分析详情
    List<SupervisorProjectDTO>  selectCpFxDetail(SupervisorProjectDTO dto);
    //产品名称
    List<SupervisorProjectDTO>  selectCpName(SupervisorProjectDTO dto);
    // 价格分析
    List<SupervisorProjectDTO>  selectJgFx(SupervisorProjectDTO dto);
    // 最低最高价 项目名称
    List<SupervisorProjectDTO>  selectJgPro(SupervisorProjectDTO dto);
    // 最低最高价 建设单位
    List<SupervisorProjectDTO>  selectJgJsDw(SupervisorProjectDTO dto);
    //项目完成率
    List<SupervisorProjectDTO>  selectProFinishLv(SupervisorProjectDTO dto);

    /**
     * 智能检索 查询公司合同额
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectAmount(Map map);
    /**
     * 智能检索 根据每个年月查询公司合同额
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectAmounts(Map map);
    /**
     * 智能检索 查询总部合同额
     * @param map
     * @return
     */
    SupervisorProjectDTO selectHeadquartersAmount(Map map);
    /**
     * 智能检索 合同额对比查询
     * @param map
     * @return
     */
    SupervisorProjectDTO selectAmountContrast(Map map);

    /**
     * 大屏合同额对比
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectAmountContrastDP(Map map);
    /**
     * 智能检索 项目分布
     * @param map
     * @return
     */
    SupervisorProjectDTO selectDistribution(Map map);
    /**
     * 智能检索 查询对应省份的市区
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectCity(Map map);

    String queryHy(String code);

    String queryXmlx(String code);

    String queryXmgs(String id);

    String querySsdq(String code);

    List<SupervisorProjectDTO> showSupervisorListApp(SupervisorProjectDTO supervisorProjectDTO);

    SupervisorProjectDTO selectSupervisorDetailApp(SupervisorProjectDTO supervisorProjectDTO);

    /**
     * 智能检索 查询监理、检测、咨询重复的市区
     * @param map
     * @return
     */
    List<SupervisorProjectDTO> selectAllCity(Map map);

    /**
     * 根据id修改支付金额
     * @param xmId
     * @param num
     */
    void updateById(@Param("xmId") String xmId, @Param("num") String num);

    /**
     * 查询分公司 监理 检测 咨询总和
     * @param bcId 分公司id
     * @param year 年份
     * @return
     */
    List<Map<String, Object>> selectAmountContrastDPTotal(@Param("bcId") String bcId,@Param("year") String year);
}
